2. Git Action
1. GitHub Actions
GitHub Actions 是 GitHub 提供的持续集成(CI/CD)服务,它允许开发者自动化软件开发工作流,如代码测试、构建、部署等。
info
GitHub Actions 通过 .github/workflows
目录下的 YAML 配置文 件定义。
2. GitHub Actions 主要用途
- 自动测试:在代码提交或 PR 时运行单元测试。
- 自动部署:构建并部署应用到服务器或云平台。
- 代码质量检查:使用 Lint 工具检查代码格式。
- 自动化发布:创建版本、打包并发布到 npm、Docker Hub 等。
3. GitHub Actions 代码示例
3.1 基本工作流(Workflow)
下面是一个 GitHub Actions 基础示例,在 push
事件触发时运行一个 Job。
ame: Basic Workflow
on: [push]
jobs:
example_job:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run a simple script
run: echo "Hello GitHub Actions!"
tip
此工作流在 push
事件触发时执行,拉取代码并运行 echo
命令。
3.2 运行多个 Job
- YAML
name: Multi-Job Example
on: [push]
jobs:
job1:
runs-on: ubuntu-latest
steps:
- name: Step in Job 1
run: echo "This is Job 1"
job2:
runs-on: ubuntu-latest
needs: job1
steps:
- name: Step in Job 2
run: echo "This is Job 2"
caution
needs: job1
说明 job2
依赖于 job1
,必须等待 job1
结束后才能执行。
4. 进阶用法
4.1 使用 Secrets 进行身份验证
name: Deploy to Server
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Deploy via SSH
run: |
ssh -o StrictHostKeyChecking=no user@server "deploy_script.sh"
env:
SSH_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
info
secrets.SSH_PRIVATE_KEY
需要在 GitHub 仓库的 Settings > Secrets 中配置。
5. 使用 Matrix 进行并行测试
name: Matrix Test
on: [push]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14, 16, 18]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
tip
matrix
允许在多个环境(如不同 Node.js 版本)上同时运行测试,提高兼容性。